package cn.highedu.coolsharkhub.controller;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpSession;

/**
 * 会话 Session
 */
@RestController
public class SessionController {
    Logger logger = LoggerFactory.getLogger(SessionController.class);

    @GetMapping("/setSession")
    public String setSession(HttpSession session) {
        logger.info("设置Session");
        logger.info("sessionId:{}", session.getId()); // 获取sessionId
        // session的有效期
        logger.info("session有效期:{}", session.getMaxInactiveInterval()); // 获取Session有效期

        // 保存数据
        session.setAttribute("name", "Jerry");
        return "设置Session";
    }

    // 读取session中的数据
    @GetMapping("/getSession")
    public String getSession(HttpSession session) {
        logger.info("获取Session");
        // 读取Session中保存的数据
        String name = (String) session.getAttribute("name");
        logger.info("Session保存的数据:{}", name);
        return "读取session";
    }
    // 清空Session (一般用于用户退出登录)
    @GetMapping("/clearSession")
    public String clearSession(HttpSession session) {
        logger.info("清空Session");
        session.invalidate();
        return "清空Session";
    }
}
